#ifndef __ITERATOR_H
#define __ITERATOR_H

#include "../c2cpp.h"

typedef struct
{
    void *_point;
    void (*init)(iterator *);
    int (*hasNext)(iterator *);
    void (*next)(iterator *);
    void (*prev)(iterator *);
    void (*reset)(iterator *);
} iterator;

void init(iterator *iter, void *point);
int hasNext(iterator *iter);
void next(iterator *iter);
void prev(iterator *iter);
void reset(iterator *iter);

#endif